﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Collections;

namespace Librerias
{
    /// <summary>
    /// clase EN EventoAsignatura
    /// </summary>
    public class ENEventoAsignatura:ENBase
    {

         #region variables
        /// <summary>
        /// Identificador del evento
        /// </summary>
        private int id;
         /// <summary>
        /// Correo del profesor
        /// </summary>
        private string correo;
         /// <summary>
        /// Codigo asignatura
        /// </summary>
        private string codigo;
         /// <summary>
        /// Fecha del evento
        /// </summary>
        private DateTime fecha;
        /// <summary>
        /// Asunto del evento
        /// </summary>
        private string asunto;
        /// <summary>
        /// texto
        /// </summary>
        private string texto;
        /// <summary>
        /// Fecha inicio
        /// </summary>
        private DateTime fechaInicio;
         /// <summary>
        /// Fecha Fin
        /// </summary>
        private DateTime fechaFin;
        /// <summary>
        /// CAD
        /// </summary>
        private CADEvento cad  = new CADEvento();
       
        #endregion

        #region get set
        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        public string Correo
          {
            get { return correo; }
            set { correo= value; }
        }
        public string Codigo
        {
            get { return codigo; }
            set { codigo = value; }
        }
        public DateTime Fecha
        {
            get { return fecha; }
            set { fecha = value; }
        }
      
        public string Asunto
        {
            get { return asunto; }
            set { asunto= value; }
        }
        public string Texto
        {
            get { return texto; }
            set { texto = value; }
        }
        public DateTime FechaInicio
        {
            get { return fechaInicio; }
            set { fechaInicio = value; }
        }
        public DateTime FechaFin
        {
            get { return fechaFin; }
            set { fechaFin = value; }
        }

        #endregion

        #region constructores
        /*
        public ENEventoAsignatura()
        {
            id=0;
            correoUsuario=string.Empty;
            codigo=string.Empty;
            fecha=DateTime.Now;
            asunto=string.Empty;
            texto=string.Empty;
            fechaInicio=DateTime.Now;
            fechaFin=DateTime.Now;
            cad = new CADEvento();

        }*/

        public ENEventoAsignatura()
        {
            correo = "";
            codigo = "";
            fecha = DateTime.Now;
            asunto = "";
            texto = "";
            fechaInicio = DateTime.Now;
            fechaFin = DateTime.Now;
        }


        /// <summary>
        /// Const dado un id
        /// </summary>
        /// <param name="identificador">id</param>
        public ENEventoAsignatura(int identificador)
        {
            id = identificador;
            correo = "";
            codigo = "";
            fecha = DateTime.Now;
            asunto = "";
            texto = "";
            fechaInicio = DateTime.Now;
            fechaFin = DateTime.Now;
        }

        /// <summary>
        /// Const dado usuario y asignatura
        /// </summary>
        /// <param name="usu">usuario</param>
        /// <param name="asig">asignatura</param>
        public ENEventoAsignatura(string usu, string asig)
        {
            correo = usu;
            codigo=asig;
            fecha=DateTime.Now;
            asunto="";
            texto="";
            fechaInicio=DateTime.Now;
            fechaFin=DateTime.Now;
        }

       /// <summary>
        /// Constructor parametrizado sin ID (para insertar)
       /// </summary>
       /// <param name="usuario">usuario</param>
       /// <param name="asignatura">asignatura</param>
       /// <param name="titulo">titulo</param>
       /// <param name="mensaje">mensaje</param>
       /// <param name="fIni">fecha ini</param>
       /// <param name="fFin">fecha fin</param>
        public ENEventoAsignatura(string usuario,string asignatura, string titulo,string mensaje, DateTime fIni, DateTime fFin)
        {
            correo = usuario;
            codigo = asignatura;
            fecha=DateTime.Now;
            asunto = titulo;
            texto = mensaje;
            fechaInicio = fIni;
            fechaFin = fFin;
        }

       
        /// <summary>
        /// Const parametrizado con id para modificar
        /// </summary>
        /// <param name="unid">id </param>
        /// <param name="uncorreo">correo</param>
        /// <param name="uncodigo">codigo</param>
        /// <param name="unfecha">fecha</param>
        /// <param name="unasunto">asunto</param>
        /// <param name="untexto">texto</param>
        /// <param name="unfechaInicio">fecha inicio</param>
        /// <param name="unfechaFin">fecha fin</param>
        public ENEventoAsignatura(int unid, string uncorreo, string uncodigo, DateTime unfecha, string unasunto, string untexto, DateTime unfechaInicio, DateTime unfechaFin)
        {
            id = unid;
            correo = uncorreo;
            codigo = uncodigo;
            fecha = unfecha;
            asunto = unasunto;
            texto = untexto;
            fechaInicio = unfechaInicio;
            fechaFin = unfechaFin;

        }
        #endregion

        /// <summary>
        /// Consulta los eventos
        /// </summary>
        /// <returns>DataTable</returns>
        public DataTable ConsultaEventosWeb(string CodigoAsignatura)
        {
            return cad.ConsultaEventosWeb(CodigoAsignatura);
        }

        /// <summary>
        /// Consulta los eventos
        /// </summary>
        /// <returns>DataTable</returns>
        public DataTable ConsultaEventos()
        {
            return cad.ConsultaEventos(codigo);
        }

        /// <summary>
        /// consulta eventos dada cadena y tipo
        /// </summary>
        /// <param name="cadena">cadena</param>
        /// <param name="tipo">tipo</param>
        /// <returns>DataTable</returns>
        public DataTable ConsultaEventos(string cadena, int tipo)
        {
            return cad.ConsultaEventos(codigo, cadena, tipo);
        }

        /// <summary>
        /// consulta eventos a partir de unas asignaturas
        /// </summary>
        /// <param name="listaAsignaturas"></param>
        /// <returns></returns>
        public DataTable ConsultaEventos(ArrayList listaAsignaturas)
        {
            return cad.ConsultaEventos(listaAsignaturas);
        }

        /// <summary>
        /// Persiste un evento
        /// </summary>
        public void Alta()
        {
            cad.CrearEvento(this);
        }

        /// <summary>
        /// Borra Evento
        /// </summary>
        public void Baja()
        {
            cad.EliminarEvento(id);
        }

        /// <summary>
        /// Modifica evento
        /// </summary>
        public void Modificacion()
        {
            cad.ModificarEvento(this);
        }
    }
}
